package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.Goods;
import com.atguigu.jxc.entity.GoodsType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @description 商品信息
 */
@Mapper
public interface GoodsDao {

    String getMaxCode();

    List<Goods> getGoodsInventoryList(@Param("offSet") Integer offSet,
                                      @Param("pageRow") Integer pageRow,
                                      @Param("codeOrName") String codeOrName,
                                      @Param("goodsTypeId") Integer goodsTypeId);


    List<Goods> getGoodsList(@Param("offSet") Integer offSet,
                             @Param("pageRow")Integer pageRow,
                             @Param("goodsName") String goodsName,
                             @Param("goodsTypeId") Integer goodsTypeId
                             );

    void updateGoods(Goods goods);

    void saveGoods(Goods goods);

    void deleteGoodsById(Integer goodsId);

    List<Goods> noInventoryQuantityList(@Param("offSet") Integer offSet,
                                        @Param("pageRow") Integer pageRow,
                                        @Param("nameOrCode") String nameOrCode);

    List<Goods> hasInventoryQuantityList(@Param("offSet") Integer offSet,
                                        @Param("pageRow") Integer pageRow,
                                        @Param("nameOrCode") String nameOrCode);

    void updateStock(Goods goods);

    Goods selectGoodsById(Integer goodsId);

    void deleteStock(Integer goodsId);
}
